+vtk9 (9.6.2+dfsg1-3) unstable; urgency=medium
+
+ * Team upload.
+ * debian patch fix_xmlwriter_ascii_implicit_cellarray_segfault.patch
+ fixes segfault writing ascii .vtu files with implicit cell type
+ arrays, fixing yade FTBFS.
+ * add autopkgtest writeVTUAsciiImplicitCellTypes covering this bug.
+
+ -- Anton Gladky <gladk@debian.org> Mon, 27 Jul 2026 16:37:42 +0200
+
vtk9 (9.6.2+dfsg1-2) unstable; urgency=medium
* Team upload
--- /dev/null
+Description: Fix segfault writing ascii .vtu files with implicit cell type arrays
+ NewIterator() returns nullptr for the implicit cell-type arrays used
+ since VTK 9.6. WriteAsciiData() dereferenced that nullptr via an
+ unconditional iter->Delete(). Guard it. Closes yade FTBFS.
+Forwarded: not-yet
+Author: Anton Gladky <gladk@debian.org>
+
+Index: vtk9/IO/XML/vtkXMLWriter.cxx
+===================================================================
+--- vtk9.orig/IO/XML/vtkXMLWriter.cxx
++++ vtk9/IO/XML/vtkXMLWriter.cxx
+@@ -1978,7 +1978,10 @@ int vtkXMLWriter::WriteAsciiData(vtkAbs
+ ret = 0;
+ break;
+ }
+- iter->Delete();
++ if (iter)
++ {
++ iter->Delete();
++ }
+ return ret;
+ }
+
--- /dev/null
+#!/bin/sh
+# autopkgtest check
+# regression test for a vtkXMLWriter::WriteAsciiData() segfault:
+# ascii .vtu output of a vtkUnstructuredGrid whose cells all share one
+# type (implicit cell-type array, VTK >= 9.6) used to dereference a
+# nullptr vtkArrayIterator.
+
+set -e
+
+export OMPI_MCA_orte_rsh_agent=/bin/false
+
+WORKDIR=$(mktemp -d)
+trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
+cd $WORKDIR
+mkdir src
+cd src
+
+cat <<EOF > CMakeLists.txt
+cmake_minimum_required(VERSION 3.28)
+project(demo)
+find_package(VTK REQUIRED)
+
+add_executable(demo demo.cpp)
+target_link_libraries(demo \${VTK_LIBRARIES})
+install(TARGETS demo DESTINATION bin)
+EOF
+
+cat <<EOF > demo.cpp
+#include <vtkCellArray.h>
+#include <vtkNew.h>
+#include <vtkPoints.h>
+#include <vtkUnstructuredGrid.h>
+#include <vtkXMLUnstructuredGridWriter.h>
+
+int main()
+{
+ vtkNew<vtkPoints> points;
+ points->InsertNextPoint(0, 0, 0);
+ points->InsertNextPoint(1, 0, 0);
+ points->InsertNextPoint(2, 0, 0);
+
+ vtkNew<vtkCellArray> cells;
+ for (vtkIdType i = 0; i < 3; ++i)
+ {
+ cells->InsertNextCell(1, &i);
+ }
+
+ vtkNew<vtkUnstructuredGrid> grid;
+ grid->SetPoints(points);
+ // implicit (constant) cell-type array, since VTK 9.6
+ grid->SetCells(VTK_VERTEX, cells);
+
+ vtkNew<vtkXMLUnstructuredGridWriter> writer;
+ writer->SetInputData(grid);
+ writer->SetFileName("a.vtu");
+ writer->SetDataModeToAscii();
+ writer->Write();
+
+ return EXIT_SUCCESS;
+}
+EOF
+
+cd ..
+mkdir build
+cd build
+cmake -DCMAKE_INSTALL_PREFIX=./../inst ./../src
+make
+make install
+echo "build: OK"
+[ -x demo ]
+./demo
+cat a.vtu
+echo "run: OK"